package com.free.semantic.infrastruct.repository;

import com.free.semantic.model.conceptmodel.RelationImplEntity;

import java.util.List;

public interface RelationImplRepository {

    /**
     * 根据ID查找关系实现
     *
     * @param id 关系实现ID
     * @return 关系实现对象
     */
    RelationImplEntity findById(Long id);

    /**
     * 根据语义网络ID查找关系实现列表
     *
     * @param semanticNetworkId 语义网络ID
     * @return 关系实现列表
     */
    List<RelationImplEntity> findBySemanticNetworkId(Long semanticNetworkId);

    /**
     * 根据关系项ID查找关系实现列表
     *
     * @param relationItemId 关系项ID
     * @return 关系实现列表
     */
    List<RelationImplEntity> findByRelationItemId(Long relationItemId);

    /**
     * 保存关系实现
     *
     * @param relationImplEntity 关系实现对象
     * @return 保存成功返回true，失败返回false
     */
    Long save(RelationImplEntity relationImplEntity);

    /**
     * 更新关系实现
     *
     * @param relationImplEntity 关系实现对象
     * @return 更新成功返回true，失败返回false
     */
    void update(RelationImplEntity relationImplEntity);

    /**
     * 根据ID删除关系实现
     *
     * @param id 关系实现ID
     * @return 删除成功返回true，失败返回false
     */
    void deleteById(Long id);

    /**
     * 根据语义网络ID删除关系实现
     *
     * @param semanticNetworkId 语义网络ID
     * @return 删除成功返回true，失败返回false
     */
    void deleteBySemanticNetworkId(Long semanticNetworkId);

    /**
     * 根据关系项ID删除关系实现
     *
     * @param relationItemId 关系项ID
     * @return 删除成功返回true，失败返回false
     */
    void deleteByRelationItemId(Long relationItemId);
} 